// pages/studyWord/selectCourse/selectCourse.js
const app = getApp();
const httpUtils = require('../../../utils/httpUtils.js');
let wordpackages = [{
  "id": "197", //词库id
  "level_title": "小学体验词库***", //词库名称
  "curriculum_id": "198", //课程id
  "complete": "1", //完成次数,
  "total": 1500, //总单词数
  "course_type": 0
}, {
  "id": "199",
  "level_title": "初中体验词库***",
  "curriculum_id": "198",
  "complete": "2", //完成次数,
  "total": 1500,
  "course_type": 0 //总单词数
}];


Page({

  /**
   * 页面的初始数据
   */
  data: {
    imageurl: app.globalData.imageurl,
    wordpackages: [],
    packageid: 0, //当前加载的packageid
    countDownNum: 10, //加载课程包 倒计时10s 如果10s没到就加载完成的就直接取消加载框跳到九宫格界面
    isShow: false, //true 对话框显示 false 对话框隐藏
    couse: "",
    complete: "",
    course_type: 0,
    isLoading: false, //true正在加载单词包

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this;
    //获取可用词库
    that.getwordPackages();
  },

  //请求获取可用词库
  getwordPackages: function () {
    let that = this;
    wx.showLoading({
      title: '',
      mask: true
    })
    httpUtils.getwordpackages({
      access_token: app.globalData.studentInfo.access_token ? app.globalData.studentInfo.access_token : app.globalData.access_token,
    }).then((res) => {
      that.setData({
        wordpackages: res.data,
      })

    });
  },

  //加载课程包
  checkhasword: function () {
    let that = this;
    httpUtils.checkhasword({
      access_token: app.globalData.studentInfo.access_token ? app.globalData.studentInfo.access_token : app.globalData.access_token,
      package_id: this.data.packageid,
    }).then((res) => {
      if (res.data.type == 10001) { //加载完成 
        that.setData({
          isShow: false,
          isLoading: false,
          countDownNum: 10,
        })
        clearInterval(that.data.timer);
        that.gaToNineBox();
      } else {
        if (this.data.isLoading) {
          setTimeout(function () {
            that.checkhasword();
          }, 2000) //延迟时间 这里是2秒 执行
        }
      }
    });
  },

  //点击条目
  clickCourse: function (e) {
    let that = this;
    console.log(e)
    this.data.packageid = e.currentTarget.dataset.packageid;
    this.data.course = e.currentTarget.dataset.couse;
    this.data.complete = e.currentTarget.dataset.complete;
    this.data.course_type = e.currentTarget.dataset.course_type;
    if (e.currentTarget.dataset.can_study == 0 ) {
      wx.showToast({
        title: '该课程暂不可用，请联系服务中心老师！',
        icon: 'none',
        image: '',
        duration: 1500,
        mask: true,
      })
      return
    }
    if ( e.currentTarget.dataset.is_expire == 1) {
     
      wx.showToast({
        title: '该课程已过期，请联系服务中心老师付费！',
        icon: 'none',
        image: '',
        duration: 1500,
        mask: true,

      })
      return
    }
    if (e.currentTarget.dataset.has_result == 1) {
      that.gaToNineBox();
    } else {
      //开启倒计时 显示倒计时对话框
      that.setData({
        isShow: true,
        isLoading: true,
      })
      this.countDown();
      this.checkhasword(); //加载课程包
    }
  },
  //倒计时
  countDown: function () {
    let that = this;
    let countDownNum = that.data.countDownNum; //获取倒计时初始值
    let isLoading = that.data.isLoading;
    //如果将定时器设置在外面，那么用户就看不到countDownNum的数值动态变化，所以要把定时器存进data里面
    that.setData({
      timer: setInterval(function () { //这里把setInterval赋值给变量名为timer的变量
        //每隔一秒countDownNum就减一，实现同步
        countDownNum--;
        //然后把countDownNum存进data，好让用户知道时间在倒计着
        that.setData({
          countDownNum: countDownNum
        })
        //在倒计时还未到0时，这中间可以做其他的事情，按项目需求来
        if (countDownNum <= 0 || !isLoading) {
          that.setData({
            countDownNum: 10,
            isShow: false,
            isLoading: false,
          })
          //这里特别要注意，计时器是始终一直在走的，如果你的时间为0，那么就要关掉定时器！不然相当耗性能
          //因为timer是存在data里面的，所以在关掉时，也要在data里取出后再关闭
          clearInterval(that.data.timer);
          //关闭定时器之后，可作其他处理codes go here
        }
      }, 1000)
    })
  },


  //退回到九宫格界面 更新九宫格数据
  gaToNineBox: function () {
    let pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。
    let prevPage = pages[pages.length - 2];
    //prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面，-3是上上个页面以此类推。
    prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
      packageid: this.data.packageid,
      course: this.data.course,
      roundnum: this.data.complete,
      course_type: this.data.course_type,
    })
    wx.navigateBack({
      delta: 1
    })
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    this.data.isLoading = false;
    clearInterval(this.data.timer);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})